#
# @lc app=leetcode.cn id=3 lang=python
#
# [3] 无重复字符的最长子串
#

# @lc code=start
class Solution(object):
    def lengthOfLongestSubstring(self, s):
        """
        :type s: str
        :rtype: int
        """
        n = len(s)
        temp = []
        l = 0
        for i in s:
            while i in temp:
                temp.pop(0)
            temp.append(i)
            if len(temp) > l:
                l = len(temp)
        return l

        #先思考用什么数据结构，看到这个题目，很自然的想到用队列
        n = len(s)
        #空list初始化空队列
        temp = []
        l = 0
        #i读取当前字符
        for i in s:
            #判断i是否在队列中，如果是，先进入队列的先出去，直到i与队列中的字符不重复
            while i in temp:
                temp.pop(0)
            #将i加入队列中
            temp.append(i)
            #判断是否大于当前的无重复字符的最大字串
            if len(temp) > l:
                l = len(temp)
        return l

a = Solution()
print(a.lengthOfLongestSubstring(""))
# @lc code=end

